# 再帰中に高階関数が交じると混乱する -> 難しく考え過ぎ脳を分解するだけ ## 例 ```hs subs [] = [[]] subs (x:xs) = yss ++ map (x:) yss where yss = subs xs ``` ## そんなことはいいから、基底のところだけ考える ```hs -- subs [1,2] [[]] ++ map (2:) [[]] ``` ### map部分 これはすぐわかる `[[2]]` ### 全体 map部分がわかったので、これもすぐわかる `[[]] ++ [[2]]` -> `[[], [2]]` ## まとめ * タイトルどおり * 落ち着け